""" mainADM
        Opcoes:
    OK    -Relatorio
    OK        -Todas
    OK        -Por Status (Aberto, em andamento, Aguardando Peca, CONCLUIDO)

<<<<<<< .mine
    OK    -Gerenciar(Criar, Editar, Excluir)
            OK-Usuario
            OK-Cliente
            OK-Equipamento
=======
    OK    -Gerenciar (Criar, Editar, Excluir)
            OK-Usuario        
            OK-Cliente        
            OK-Equipamento    
>>>>>>> .r28

     OK   -Sair """

from Equipamento import *
from Cliente import *
from Relatorio import *
from Usuario import *

"""
##############################################################
#                       MENU PRINCIPAL                       #
##############################################################
"""

def mainADM():
        print """        Menu Administrador
        1 - Relatorio
        2 - Gerenciar
        0 - Sair
        """
        opcao = raw_input("")
        if (opcao == '1'):
                exibirRelatorio()
        if (opcao == '2'):
                print"""
        1 - Clientes
        2 - Equipamentos
        3 - Usuarios
        0 - Voltar
        """
                opcao = raw_input("")
                if (opcao == "1"):
                        gerenciarCliente()
                elif (opcao == "2"):
                        gerenciarEquipamento()
                elif (opcao == "3"):
                        gerenciarUsuario()
                elif (opcao == "0"):
                        mainADM()
                
        if (opcao == '0'):
            print "Obrigado!\n\n"

        else:
            print "\nDigite uma opcao!\n"
            mainADM()

"""
##############################################################
#                        RELATORIO                           #
##############################################################
"""

def exibirRelatorio():
        print """        Selecione a opcao.
    1 - Todos
    2 - Por STATUS
    0 - Voltar
    """
        opcao = raw_input("")
        if (opcao == '1'):
                rel = Relatorio()
                rel.RelatorioCompleto()
        if (opcao == '2'):
            print """        Selecione o Status
    1 - Aberto
    2 - Em Andamento
    3 - Aguardando Pecas
    4 - Concluido
      ------------------
    0 - Voltar
    """
            opcao = raw_input("")
            if (opcao == '1'):
                    Status = "Aberto"
                    rel = Relatorio()
                    rel.RelatorioStatus(Status)
            if (opcao == '2'):
                    Status = "Em Andamento"
                    rel = Relatorio()
                    rel.RelatorioStatus(Status)
            if (opcao == '3'):
                    Status = "Aguardando Pecas"
                    rel = Relatorio()
                    rel.RelatorioStatus(Status)
            if (opcao == '4'):
                    Status = "Concluido"
                    rel = Relatorio()
                    rel.RelatorioStatus(Status)
            if (opcao == '0'):
                    exibirRelatorio()
                    
        if (opcao == '0'):
            mainADM()
"""     
##############################################################
#                    GERENCIAR CLIENTES                      #
##############################################################
"""
def gerenciarCliente():
        print """
    1 - Cadastrar Cliente
    2 - Alterar Cliente
    3 - Remover Cliente
    0 - Voltar
    """
        opcao = raw_input("")
        if (opcao == '1'):
            cadastrarCliente()
        if (opcao == '2'):
            alterarCliente()
        if (opcao == '3'):
            removerCliente()
        if (opcao == '0'):
            mainADM()
        else:
            gerenciarCliente()

def cadastrarCliente():
        nome = raw_input("Nome: ")
        cpf = raw_input("CPF: ")
        telefone = raw_input("Telefone: ")
        endereco = raw_input("Endereco: ")
        email = raw_input("Email: ")
        print ("\n Nome: %s\n CPF:%s\n Telefone:%s\n Endereco: %s\n Email:%s\n") %(nome,cpf,telefone,endereco,email)
        chave= raw_input("Confirmar dados? S ou N\n")
        if chave.upper() == "S" :
                cliente = Cliente(nome,cpf,telefone,endereco,email)
                cliente.insert()
                print "Cliente cadastrado com sucesso!"
        elif chave.upper() == "N":
                cadastrarCliente()

def alterarCliente():
        idCliente = raw_input("Digite o codigo do cliente: ")
        cliente = Cliente()
        cliente.setIdCliente(idCliente)
        retorno = cliente.load()
        if (retorno == False):
                print "Cliente nao cadastrado"
                alterarCliente()


        else:
                nome = raw_input("Nome: ")
                cpf = raw_input("CPF: ")
                telefone = raw_input("Telefone: ")
                endereco = raw_input("Endereco: ")
                email = raw_input("Email: ")
                print ("\n Nome: %s\n CPF:%s\n Telefone:%s\n Endereco: %s\n Email:%s\n") %(nome,cpf,telefone,endereco,email)
                chave= raw_input("Confirmar dados? S ou N\n")
                if chave.upper() == "S" :
                        cliente = Cliente(nome,cpf,telefone,endereco,email)
                        cliente.setIdCliente(idCliente)
                        cliente.update()
                        print "Cliente alterado com sucesso!"
                elif chave.upper() == "N":
                        alterarCliente()

def removerCliente():
        idCliente = int(input("Digite o codigo do cliente: "))
        cliente = Cliente()
        cliente.setIdCliente(idCliente)
        retorno = cliente.load()
        
        if (retorno == False):
            print "Cliente nao cadastrado"
            removerUsuario()
        else:
                chave= raw_input("Confirmar dados? S ou N\n")
                if chave.upper() == "S" :
                        cliente = Cliente(idCliente)
                        cliente.setIdCliente(idCliente)
                        cliente = Cliente(idCliente)
                        cliente.setIdCliente(idCliente)
                        cliente.remover()
                        print "Cliente removido com sucesso!"
                elif chave.upper() == "N":
                        removerCliente()

##############################################################
#                    GERENCIAR EQUIPAMENTO                   #
##############################################################            

def gerenciarEquipamento():
        print """
    1 - Cadastrar Equipamento
    2 - Alterar Equipamento
    3 - Remover Equipamento
    0 - Voltar
    """
        opcao = raw_input("")
        if (opcao == '1'):
            cadastrarEquipamento()
        if (opcao == '2'):
            alterarEquipamento()
        if (opcao == '3'):
            removerEquipamento()
        if (opcao == '0'):
            mainADM()
        else:
            gerenciarEquipamento()
            
def cadastrarEquipamento():
        descricao = raw_input("Descricao: ")
        marca = raw_input("Marca: ")
        modelo = raw_input("Modelo: ")
        acessorio = raw_input("Acessorio: ")
        hd = raw_input("HD: ")
        memoria = raw_input("Memoria: ")
        processador = raw_input("Processador: ")
        print ("\n Descricao: %s\n Marca:%s\n Modelo:%s\n Acessorio: %s\n HD:%s\n Memoria:%s\n Processador:%s\n") %(descricao,marca,modelo,acessorio,hd,memoria,processador)
        chave= raw_input("Confirmar dados? S ou N\n")
        if chave.upper() == "S" :
                equipamento = Equipamento(descricao,marca,modelo,acessorio,hd,memoria,processador)
                equipamento.insert()
                print "Equipamento cadastrado com sucesso!"
        elif chave.upper() == "N":
                cadastrarEquipamento()


def alterarEquipamento():
        idEquipamento = raw_input("Digite o codigo do equipamento: ")
        equipamento = Equipamento()
        equipamento.setIdEquipamento(idEquipamento)
        retorno = equipamento.load()
        if (retorno == False):
            print "Id nao encontrado!"
            alterarEquipamento()
        else:    
        
            descricao = raw_input("Descricao: ")
            marca = raw_input("Marca: ")
            modelo = raw_input("Modelo: ")
            acessorio = raw_input("Acessorio: ")
            hd = raw_input("HD: ")
            memoria = raw_input("Memoria: ")
            processador = raw_input("Processador: ")
            chave= raw_input("Confirmar dados? S ou N\n")
            if chave.upper() == "S" :
                    equipamento = Equipamento(descricao,marca,modelo,acessorio,hd,memoria,processador)
                    equipamento.setIdEquipamento(idEquipamento)
                    equipamento.update()
                    print "Equipamento alterado com sucesso!"
            elif chave.upper() == "N":
                    alterarEquipamento()
        
def removerEquipamento():
        idEquipamento = raw_input("Digite o codigo do equipamento: ")
        equipamento = Equipamento()
        equipamento.setIdEquipamento(idEquipamento)
        retorno = equipamento.load()    
        if (retorno == False):
                print "Id nao encontrado!"
        else:
                chave= raw_input("Confirmar Exclusao? S ou N\n")
                if chave.upper() == "S" :
                        equipamento = Equipamento()
                        equipamento.setIdEquipamento(idEquipamento)
                        equipamento.remover()
                        print "Equipamento removido com sucesso!"
                if chave.upper() == "N":
                        removerCliente()

"""     
##############################################################
#                    GERENCIAR USUARIOS                      #
##############################################################
"""

def gerenciarUsuario():
        print """    Gerenciar Usuario
    1 - Cadastrar
    2 - Alterar
    3 - Remover
    0 - Voltar
    """
        opcao = raw_input("")
        if (opcao == '1'):
            cadastrarUsuario()
        if (opcao == '2'):
            alterarUsuario()
        if (opcao == '3'):
            removerUsuario()
        if (opcao == '0'):
            mainADM()
        else:
            gerenciarUsuario()

def cadastrarUsuario():
        Nome = raw_input("Nome: ")
        Login = raw_input("Login: ")
        Senha = raw_input("Senha: ")
        SenhaConf = raw_input("Digite a senha novamente: ")
        Privilegio = raw_input("""        Selecionar privilegio
        ADM - Administrador
        TEC - Tecnico
        ATE - Atendente
        Digite o tipo de privilegio: """ )        
        print ("\n Nome: %s\n Login:%s\n Senha:%s\n Privilegio: %s\n ") %(Nome,Login,Senha,Privilegio.upper())
        chave= raw_input("Confirmar dados? S ou N\n")
        if chave.upper() == "S" :
                usuario = Usuario(Login,Senha,Privilegio.upper(),Nome)
                usuario.insert()
                print "Usuario cadastrado com sucesso!"
        elif chave.upper() == "N":
                cadastrarUsuario()

def alterarUsuario():
        IdUsuario = raw_input("Digite o ID do Usuario: ")
        usuario = Usuario()
        usuario.setIdUsuario(IdUsuario)
        retorno = usuario.load()
        if (retorno == False):
                print "Usuario nao cadastrado"
                alterarUsuario()


        else:
                chave = raw_input("Deseja aterar este usuario? S ou N\n")
                if chave.upper() == "S":
                        Nome = raw_input("Nome: ")
                        Login = raw_input("Login: ")
                        Senha = raw_input("Senha: ")
                        SenhaConf = raw_input("Digite a senha novamente: ")
                        Privilegio = raw_input("""        Selecionar privilegio
        ADM - Administrador
        TEC - Tecnico
        ATE - Atendente
        Digite o tipo de privilegio: """ )        
                        print ("\n Nome: %s\n Login:%s\n Senha:%s\n Privilegio: %s\n ") %(Nome,Login,Senha,Privilegio.upper())
                        chave= raw_input("Confirmar dados? S ou N\n")
                        if chave.upper() == "S" :
                                usuario = Usuario(Login,Senha,Privilegio.upper(),Nome)
                                usuario.setIdUsuario(IdUsuario)
                                usuario.update()
                                print "Usuario alterado com sucesso!"
                        elif chave.upper() == "N":
                                alterarUsuario()
                if chave.upper() == "N":
                        alterarUsuario()
                chave = raw_input("Deseja aterar este usuario? S ou N\n")
                if chave.upper() == "S":
                        Nome = raw_input("Nome: ")
                        Login = raw_input("Login: ")
                        Senha = raw_input("Senha: ")
                        SenhaConf = raw_input("Digite a senha novamente: ")
                        Privilegio = raw_input("""        Selecionar privilegio
        ADM - Administrador
        TEC - Tecnico
        ATE - Atendente
        Digite o tipo de privilegio: """ )        
                        print ("\n Nome: %s\n Login:%s\n Senha:%s\n Privilegio: %s\n ") %(Nome,Login,Senha,Privilegio.upper())
                        chave= raw_input("Confirmar dados? S ou N\n")
                        if chave.upper() == "S" :
                                usuario = Usuario(Login,Senha,Privilegio.upper(),Nome)
                                usuario.setIdUsuario(IdUsuario)
                                usuario.update()
                                print "Cliente alterado com sucesso!"
                                print "Usuario alterado com sucesso!"
                        elif chave.upper() == "N":
                                alterarUsuario()
                if chave.upper() == "N":
                        alterarCliente()

def removerUsuario():
        IdUsuario = int(input("Digite o codigo do cliente: "))
        usuario = Usuario()
        usuario.setIdUsuario(IdUsuario)
        retorno = usuario.load()
        
        if (retorno == False):
            print "Usuario nao cadastrado"
            removerUsuario()
        else:
                chave= raw_input("Confirmar dados? S ou N\n")
                if chave.upper() == "S" :
                        usuario = Usuario(IdUsuario)
                        usuario.remover()
                        print "Usuario removido com sucesso!"
                elif chave.upper() == "N":
                        removerUsuario()
